package com.tbit.main.service;

import com.tbit.main.pojo.MachineFaultLog;
import com.tbit.main.pojo.MachineFaultLogSta;

import java.util.List;

/**
 * @author LMY
 * @create 2022-11-17 13:26
 */
public interface MachineFaultLogService {

    /**
     * 添加
     *
     * @param machineFaultLog
     */
    void insert(MachineFaultLog machineFaultLog);


    /**
     * 按时间分组统计
     *
     * @param agentId
     * @param userType
     * @param addManId
     * @param faultType
     * @param startTime
     * @param endTime
     * @return
     */
    public List<MachineFaultLogSta> groupByTime(Integer agentId, Integer userType, Integer addManId, Integer faultType,
                                                String startTime, String endTime, List<Integer> regionId, Integer machineType);

    /**
     * 根据时间查询
     *
     * @param accountId
     * @param accountUserId
     * @param startTime
     * @param endTime
     * @param userCode
     * @return
     */
    List<MachineFaultLog> getByTime(Integer accountId, Integer accountUserId, Integer faultType,
                                           String startTime, String endTime, String userCode, List<Integer> regionId, Integer machineType);

    /**
     * 根据故障唯一id查询
     *
     * @param orderNO
     * @return
     */
    List<MachineFaultLog> getByNO(String orderNO);

    /**
     * 根据车辆和手机号查询
     *
     * @param accountId
     * @param userCode
     * @param phone
     * @param startTime
     * @param endTime
     * @return
     */
    List<MachineFaultLog> getUserCodePhone(Integer accountId, String userCode, String phone, String startTime, String endTime, Integer rowCount, Integer pageNO);

    /**
     * 查询用户最近上报的异常记录
     *
     * @param machineId 车辆id
     * @return 上报记录
     */
    String selectUserReportedFaultsOrderNoByMachineId(Integer machineId);
}
